<?php

namespace App\Traits\GetModel;

use App\Models\Applet\Order\ShopMasterOrderModel;
use App\Models\Applet\Order\ShopOrderAddressModel;
use App\Models\Applet\Order\ShopOrderExpireModel;
use App\Models\Applet\Order\ShopOrderExpressModel;
use App\Models\Applet\Order\ShopOrderGoodsModel;
use App\Models\Applet\Order\ShopOrderModel;
use App\Models\Applet\Shop\ShopCategoryModel;
use App\Models\Applet\Shop\ShopGoodsModel;
use Exception;

trait GetShopModelTrait
{
    /**
     * @return ShopGoodsModel
     * @throws Exception
     */
    public function getShopGoodsModel(): ShopGoodsModel
    {
        return loadModel('Applet\Shop\ShopGoodsModel');
    }

    /**
     * @return ShopMasterOrderModel
     * @throws Exception
     */
    public function getShopMasterOrderModel(): ShopMasterOrderModel
    {
        return loadModel('Applet\Order\ShopMasterOrderModel');
    }

    /**
     * @return ShopOrderModel
     * @throws Exception
     */
    public function getShopOrderModel(): ShopOrderModel
    {
        return loadModel('Applet\Order\ShopOrderModel');
    }

    /**
     * @return ShopOrderGoodsModel
     * @throws Exception
     */
    public function getShopOrderGoodsModel(): ShopOrderGoodsModel
    {
        return loadModel('Applet\Order\ShopOrderGoodsModel');
    }

    /**
     * @return ShopOrderAddressModel
     * @throws Exception
     */
    public function getShopOrderAddressModel(): ShopOrderAddressModel
    {
        return loadModel('Applet\Order\ShopOrderAddressModel');
    }

    /**
     * @return ShopOrderExpressModel
     * @throws Exception
     */
    public function getShopOrderExpressModel(): ShopOrderExpressModel
    {
        return loadModel('Applet\Order\ShopOrderExpressModel');
    }

    /**
     * @return ShopCategoryModel
     * @throws Exception
     */
    public function getShopCategoryModel(): ShopCategoryModel
    {
        return loadModel('Applet\Shop\ShopCategoryModel');
    }
}
